import openpyxl
from utils import FILE_PATH


def arguments(values):
    """
    所有的数据都是通过“=”赋值，如果有多个参数，则是通过“;”来隔开。同时，在参数中可能存在None
    希望能够将单元格参数转为字典，key为等号左侧内容，value为等号右侧内容
    """
    data = {}
    # 如果values有值，则进行参数的处理
    if values:
        # 基于分号对字符串进行拆分
        temp_str = values.split(";")
        for temp in temp_str:
            # 识别参数中的第一个等号,对参数进行二次拆分
            t = temp.split("=",1)
            # t: [by=id]
            # 进行字典的拼接赋值
            data[t[0]] = t[1]  # data = {'by':'id'}
    return data



def excelUtils(path):
    print(FILE_PATH+path)
    wb = openpyxl.load_workbook(FILE_PATH+path)
    # sheet = wb["Sheet1"]
    # 因为测试用例的文件可能每页都有内容，所以在读取的时候，要确保每页都被读取
    # 读取所有sheet页列表
    sheet_names = wb.sheetnames

    datelist = []
    # 从sheet页列表，遍历出每个sheet页面
    for sheet_name in sheet_names:
        sheet = wb[sheet_name]
        # 从sheet页的所有单元格中读取内容
        for value in sheet.values:
            # 如果第一列(用例编号的内容)是数字，则获取
            if type(value[0]) == int:
                # 打印描述，用于日志打印
                # print("正在执行：{}".format(value[3]))
                # 打印测试参数，组成测试参数
                # print("测试参数：{}".format(value[2]))
                test_data = arguments(value[2])
                # print("将参数组装为字典：",test_data)
                # 测试操作行为
                # print("操作行为：{}".format(value[1]))
                # 判断操作行为的内容，执行对应操作
                # key = CaseActionKeys()
                # getattr(key,value[1])(**test_data)
                datelist.append((value[1],test_data,value[3]))
    # print(datelist)
    return datelist

